// API
import request from '@/api/request'

export default {
  /**
   * GET /list
   * params 对应解构 params 为 url 拼接参数
   * */
  list (params) {
    return request({
      url: '/list',
      method: 'GET',
      params: params
    })
  },
  /**
   * GET /info
   * */
  info (id) {
    return request({
      url: `/info/${id}`,
      method: 'GET'
    })
  },
  /**
   * POST /add
   * data 对应 body json 参数
   * */
  add (data) {
    return request({
      url: '/add',
      method: 'POST',
      data: data
    })
  },
  /**
   * PUT /update
   * data 是 body json 参数
   * */
  update (data) {
    return request({
      url: '/update',
      method: 'PUT',
      data: data
    })
  },
  /**
   * POST /export 导出
   * responseType 可选值：['blob'] 响应处理方式为文件下载
   * */
  export (data) {
    return request({
      url: '/export',
      method: 'POST',
      data: data,
      responseType: 'blob'
    })
  },
  /**
   * POST /import 导入
   * data 导入至少上传文件 data 中应至少包含 File 类型文件
   * */
  import (data) {
    const formData = new FormData()
    Object.keys(data).forEach(key => formData.append(key, data[key]))
    return request({
      url: '/import',
      method: 'POST',
      data: formData
    })
  },
  /**
   * POST /upload 上传
   * data 上传至少上传文件 data 中应至少包含 File 类型文件
   * */
  upload (data) {
    const formData = new FormData()
    Object.keys(data).forEach(key => formData.append(key, data[key]))
    return request({
      url: '/upload',
      method: 'POST',
      data: formData
    })
  }

}
